// pages/address/address.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 用于存储获取到的地址数据
    addresses: [],
    lastTapTime: 0, // 上次点击时间
    tapCount: 0 // 点击次数
  },
  gotoadd:function(){
    wx.navigateTo({
      url: '/pages/addAddress/addAddress',
    })
  },
  getAddresses: function () {
    const db = wx.cloud.database();
    db.collection('addresses').get({
      success: res => {
        console.log('获取地址数据成功:', res.data);
        this.setData({
          addresses: res.data
        });
      },
      fail: err => {
        console.error('获取地址数据失败:', err);
        wx.showToast({
          title: '获取数据失败',
          icon: 'none'
        });
      }
    });
  },
  addAddress:function(e){
    const index = e.currentTarget.dataset.index; // 获取点击的地址项索引
    const address = this.data.addresses[index]; // 获取对应的地址数据
    const encodedAddress = encodeURIComponent(JSON.stringify(address)); // 编码地址数据
    wx.navigateTo({
      url: `/pages/addAddress/addAddress?address=${encodedAddress}`
    });
  },
  deleteAddress: function (e) {
    const index = e.currentTarget.dataset.index; // 获取点击的地址项索引
    const currentTime = Date.now(); // 定义并设置当前时间
    if (currentTime - this.data.lastTapTime < 300) { // 300ms 内双击
      this.handleDoubleTap(index); // 执行双击操作
      this.setData({
        lastTapTime: 0, // 重置上次点击时间
        tapCount: 0 // 重置点击次数
      });
    } else {
      this.setData({
        lastTapTime: currentTime, // 更新上次点击时间
        tapCount: 1 // 设置点击次数为1
      });
  
      const address = this.data.addresses[index]; // 获取对应的地址数据
      if (!address) {
        wx.showToast({
          title: '地址数据不存在',
          icon: 'none'
        });
        return;
      }
  
      // 编码地址数据并跳转到 SubmitOrder 页面
      const encodedAddress = encodeURIComponent(JSON.stringify(address));
      wx.navigateTo({
        url: `/pages/SubmitOrder/SubmitOrder?addres=${encodedAddress}`,
      });
    }
  },
    handleDoubleTap: function(index) {
      wx.showModal({
        title: '提示',
        content: '确定要删除这条地址信息吗？',
        success: res => {
          if (res.confirm) {
            // 用户点击确定，执行删除操作
            const db = wx.cloud.database();
            db.collection('addresses').doc(this.data.addresses[index]._id).remove({
              success: res => {
                console.log('删除成功:', res);
                this.getAddresses(); // 刷新地址列表
              },
              fail: err => {
                console.error('删除失败:', err);
                wx.showToast({
                  title: '删除失败',
                  icon: 'none'
                });
              }
            });
          } else if (res.cancel) {
            // 用户点击取消，不做任何操作
            console.log('用户取消删除');
          }
        }
      });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getAddresses();
    if (options.stores) {
        const stores = JSON.parse(decodeURIComponent(options.stores));
        wx.setStorageSync('stores', stores); // 存储商品信息
      }
  },
  onClickLeft:function(){
    wx.navigateBack({
      delta:1
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.getAddresses(); // 每次页面显示时刷新数据
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})